import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * la clase fireflor en una plata que lanza fuego 
 * @JUAN FRANCISCO ARIAS BETANCOURT
 */
public  class Fireflor extends Enemigos
{
    private boolean creafuego;//para saver cuando se creo el fuego
    private boolean eliminado;//cuando eliminaron a la planta
    private int tiempo;//distancia de la bola de fuego
    private int dist;//intervalo entre cada bola de fuego 
    public Fireflor()
    {
        creafuego=false;
        eliminado=false;
        tiempo=0;
    }

    /***
     * crea el fuego 
     */
    public void act() 
    {

        int x,y;
        Fuego fuego;
        fuego=new Fuego(getX(), getY());
        World mundo;
        mundo=super.getWorld();// este metodo nos permite acceder al mundo

        if(creafuego==false)
        {
            asignadist();
            mundo.addObject(fuego, getX(), getY());
            creafuego=true;

        }
        if(tiempo>dist)
        {
            creafuego=false;
            tiempo=0;
        }

        persigue();

        if(checamartillo(true)==true)
        {
            eliminado=true;
            mundo.removeObject(fuego);
        }

        tiempo++;
    }

    /****
     * asigna la dist que es lo que se va a tarda en aparecer otra flama
     */
    void asignadist()
    {
        dist=Greenfoot.getRandomNumber(3);
        switch(dist)
        {
            case 1: dist=100;
            break;
            case 2: dist=200;
            break;
            case 3: dist=400;
            break;
        };

    }

    /****
     * es la que hace que la plata gire hacia  mario
     */
    void persigue()
    {
        int x,y;
        World mundo;
        mundo=super.getWorld();// este metodo nos permite acceder al mundo
        java.util.List listama = mundo.getObjects(Heroe.class);
        if(!listama.isEmpty()){
            Object obj = listama.get(0);
            Actor mario = (Actor)obj;
            x=mario.getX();
            y=mario.getY();
            this.turnTowards(x-90,y-90);}
    }

}